package com.fudan.backend.service;

import com.fudan.backend.exception.RetCode;
import com.fudan.backend.pojo.Account;

import java.util.List;

public interface AccountService {
    RetCode recharge(String accountId, Double amount);

    Account getAccountByAccountId(String accountId);

    /**
     * 根据用户id查询账户
     */
    Account getAccountByUserId(String userId);

    /**
     * 根据商店id查询账户
     */
    Account getAccountByStoreId(String storeId);

    /**
     * 获取商户拥有商店的所有账户
     * @param userId 商户的用户id
     * @return 账户链表
     */
    List<Account> getAllStoreAccountByUserId(String userId);

    /**
     * 根据用户id充值
     * @param userId 用户id
     */
    RetCode rechargeByUserId(String userId, Double amount);

    /**
     * 根据商户id充值
     * @param storeId 商户id
     */
    RetCode rechargeByStoreId(String storeId, Double amount);

    /**
     * 转账
     *
     * @param type 转账对应的bill类型
     */
    String transfer(String srcAccountId, String desAccountId, Double amount, Integer type);
    /**
     * 转账
     *
     * @param type 转账对应的bill类型
     */
    String transfer(String srcAccountId, String desAccountId, Double amount, Integer type, String moreInfo);
}
